/* ---------------------------------------------------------------------------
   (c) Copyright 2006 ActivIdentity, Inc.
   All Rights Reserved.

   This program is an unpublished copyrighted work which is proprietary
   to ActivIdentity. This computer program includes Confidential,
   Proprietary Information and is a Trade Secret of ActivIdentity.
   Any use, disclosure, modification and/or reproduction is prohibited
   unless authorized in writing by ActivIdentity.

   WARNING:  Unauthorized reproduction of this program as well as
   unauthorized preparation of derivative works based upon the
   program or distribution of copies by sale, rental, lease or
   lending are violations of federal copyright laws and state trade
   secret laws, punishable by civil and criminal penalties.
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   Disclaimer

   ACTIVIDENTITY MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE 
   CONTENTS OR USE OF THIS SOFTWARE, AND SPECIFICALLY DISCLAIMS ANY EXPRESS
   OR IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
   PURPOSE. Further, ActivIdentity reserves the right to revise this software
   and to make changes to its content, at any time, without obligation to
   notify any person or entity of such revisions or changes.
   --------------------------------------------------------------------------- */

#ifndef __DEVICE_H__
#define __DEVICE_H__

#ifdef __cplusplus
extern "C" {
#endif

/* Parameters */
#define IN
#define OUT
#define INOUT

#if defined(WIN32) || defined(WIN16) || defined(_WIN32_WCE)
/* Windows standard files and definitions */
#include <windows.h>
#else
/* Unix standard files and definitions */
#include <stdio.h>
#define CALLBACK
#define TRUE 1
#define FALSE 0
#endif

/*@{*/ /* The comments are formatted for doc++ */

/***************/
/** CONSTANTS **/
/***************/

/* device mask offset */
#define ACM_MK_OFFSET		1000 /* mask offset */

/* device type */
#define ACM_MK_SMSV_CARD	200 /* general smart card */
#define ACM_MK_JAVA_CARD	201 /* Java Card */
#define ACM_MK_MULTOS		202 /* Multos */
#define ACM_MK_CRYPTO		160 /* Cryptoflex */
#define ACM_MK_CRYPTO_8K	161 /* Cryptoflex 8k */
#define ACM_MK_TOKEN_4S		7 /* token 4S */
#define ACM_MK_TOKEN_5P		8 /* token 5P plus */
#define ACM_MK_TOKEN_ONEV0	13 /* token one V0 */
#define ACM_MK_TOKEN_ONEV1	14 /* token one V1 */
#define ACM_MK_TOKEN_ONEV2	114 /* token one V2 */
#define ACM_MK_KEYCHAIN		124 /* KeyChain */
#define ACM_MK_KEYCHAINV2	134 /* KeyChain V2 */
#define ACM_MK_MINITOKEN	144 /* Mini Token without clock AE */
#define ACM_MK_MINITOKEN3B	145 /* Mini Token 3 buttons */
#define ACM_MK_MINITOKEN_CLOCK	146 /* Mini Token with clock AT */
#define ACM_MK_MINITOKEN_HOTP	147 /* Mini Token OATH/HOTP OE */
#define ACM_MK_SOLUS		24 /* token solus */
#define ACM_MK_SOFTTOKEN	10 /* soft token */
#define ACM_MK_EMV_CARD		50 /* EMV card */


/*@}*/ /* The comments are formatted for doc++ */

#ifdef __cplusplus
}
#endif

#endif /* __DEVICE_H__ */
